package com.fruit.mapper.rights;


import com.fruit.pojo.goods.RightConfig;
import com.fruit.pojo.rights.UserGoodsRights;
import com.fruit.pojo.rights.UserGoodsRightsHarvest;
import com.fruit.pojo.rights.UserGoodsRightsPost;

import java.util.List;
import java.util.Map;
/**
 * 
* @ClassName: UserRightsMapper 
* @author 葛欢欢
* @version 2017.11.30 16:40
 */
public interface UserRightsMapper {

    /**
     * 获取用户拥有的权益
     *
     * @param pam pam
     * @return List<UserGoodsRights>
     */
    List<UserGoodsRights> fruitTreeList(Map<String, Object> pam);
    
	/**
	 * 通过期次规格ID获取权益信息
	 * @param gstId 
	 * @return 返回权益列表
	 */
    List<UserGoodsRights> getGoodsRightsByGstId(Map<String, Object> pam);
    
    /**
     * 查询分类下面的所有的商品
     * @param pam pam
     * @return List<UserGoodsRights>
     */
    List<UserGoodsRights> getGoodsRightList(Map<String, Object> pam);

    /**
     * 根据ID查找权益
     *
     * @param id 权益ID
     * @return UserGoodsRights
     */
    UserGoodsRights find(int id);

    /**
     * 查找用户树苗每年的收益
     *
     * @param id 权益ID
     * @return List<UserGoodsRightsHarvest>
     */
    List<UserGoodsRightsHarvest> findUserGoodsRightsHarvest(int id);

    /**
     * 保存用户权益信息
     *
     * @param goodsRights 用户权益信息
     * @return int
     */
    int insertGoodsRight(UserGoodsRights goodsRights);
    
    /**
     * 保存权益周期
     * @param goodsRightHarvest goodsRightHarvest
     * @return long
     */
    long insertGoodsRightHarvest(List goodsRightHarvest);
    
    /**
     * 查询某用户此分类的总数
     * @param pam pam
     * @return int
     */
    int getRightsSum(Map<String, Object> pam);
    /**
     * 查询用户权益总数
     * @param userId userId
     * @return Integer
     */
    Integer getRightNum(int userId);
    
    /**
     * 权益详情 树的对话
     *
     * @param type type
     * @return List<UserGoodsRightsPost>
     */
    List<UserGoodsRightsPost> findUserGoodsRightsPost(String type);
    
    /**
	 * app查询所有的根分类
	 * @return List<RightConfig>
	 */
	List<RightConfig> getClassId(String type);
	
	/**
	 * 查询每个大类的统计百分比 
	 * @param userId userId
	 * @return List<RightConfig>
	 */
	List<RightConfig> getClassPercentage(int userId);
	
	/**
	 * 根据orderGoodsid查询 权益详情
	* @author 葛欢欢
	* @version 2017.11.30 16:40 
	* @param orderGoodsId orderGoodsId
	* @return UserGoodsRights
	 */
	UserGoodsRights getRightByOrderGoodsId(int orderGoodsId);

}
